package com.example.emos.wx.db.dao;

import com.example.emos.wx.db.pojo.TbUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;

@Mapper
public interface TbUserDao {
    /**
     * 是否有超级管理员
     * @return
     */
    public boolean haveRootUser();

    /**
     * 插入员工记录
     * @param param
     * @return
     */
    public int insert(HashMap param);

    /**
     * 通过openId查询在职员工的id
     * @param openId
     * @return
     */
    public Integer searchIdByOpenId(String openId);

    /**
     * 查询用户所具有的的权限列表
     * @param useId
     * @return
     */
    public Set<String> searchUserPermissions(int useId);

    /**
     * 通过id查询用户信息
     * @param userId
     * @return
     */
    public TbUser searchById(int userId);

    /**
     * 通过userid查询员工姓名和部门信息
     * @param userId
     * @return
     */
    public HashMap<String, String> searchNameAndDept(int userId);

    /**
     * 查询员工的入职日期
     * @param userId
     * @return
     */
    public String searchUserHiredate(int userId);

    /**
     * 查询员工的基本信息
     * @param userId
     * @return
     */
    public HashMap searchUserSummary(int userId);

    /**
     * 分组查询用户的信息
     * @param keyword
     * @return
     */
    public ArrayList<HashMap> searchUserGroupByDept(String keyword);

    /**
     * 查询成员列表
     * @param param
     * @return
     */
    public ArrayList<HashMap> searchMembers(List param);
}